The present invention relates to user stories and requirements in software development, and more specifically, to systems and methods for integration and user story generation and requirements management.
In software engineering and system development work, user stories and use cases are techniques to assist in the understanding and analysis of software product requirements, to organize work for a software development project, and to help communicate and validate requirements understanding by reviewing with stake-holders. Use cases are treated expressions of requirements. Use cases have been around longer than user stories and are well-established in software development. For example, Unified Modeling Language (UML) tools all include the ability to diagram use cases. User stories are newer and have arisen out of the development approaches termed “Agile”. Agile stories are in part a reaction to use cases which have been perceived as time-consuming and too procedurally heavy-weight. User stories are a quick way of handling customer requirements without having to create formalized requirement documents and without performing administrative tasks related to maintaining them. The intention of the user story is to be able to respond faster and with less overhead to rapidly changing real-world requirements.
Despite their widespread use, use cases and user stories have well-known problems. Use cases, for example have long been known to overlap, and the overlap is often accepted as a normal inherent condition with use cases. Another well-known problem with use cases is that there can be gaps between use cases (or user stories). Gap analysis is implemented to determine gaps and manage gaps. In addition, another problem with use cases (and user stories) is the there are often too many of them. The number and/or the length of use cases are commonly due to trying to capture too much detail. In contrast, too little detail is also a problem and leads to gaps, overlaps, and inability to define successful tests due to overly vague specification. Conventional use case products allow for creation of use cases that can be associated with a requirement, but often the list is informal with no logically necessary connection to the requirement or the product. Use case products also typically lack a notion of completeness (i.e., the number of use cases included in a complete list), and lack means to determine gaps or overlaps. As such, UML products are flexible, but typically have no integrity checking on use case models, thereby making it easy to produce fragmentary, incomplete, inconsistent, ambiguous specifications while still following all of the UML's requirements.